package tw.cuttle.view.parameter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class DynaForm implements Serializable {
    private Log LOGGER=LogFactory.getLog(DynaForm.class);
    /**
     * 
     */
    private static final long serialVersionUID = -5950897518127929851L;
    private Map<String, Object> parameters;
    /**
     * @return the parameters
     */
    public Map<String, Object> getParameters() {
        return parameters;
    }
    /**
     * @param parameters the parameters to set
     */
    public void setParameters(Map<String, Object> parameters) {
        this.parameters = parameters;
    }
    public String getString(String key){
	return String.valueOf(this.getParameters().get(key));
    }
    public Integer getInteger(String key){
	return Integer.parseInt((String)this.getParameters().get(key));
    }
    public Long getLong(String key){
	return Long.parseLong((String)this.getParameters().get(key));
    }
    public Date getDate(String key, String format){
	SimpleDateFormat sdf=new SimpleDateFormat(format);
	try {
	    return sdf.parse((String)this.getParameters().get(key));
	} catch (ParseException e) {
	    LOGGER.warn("parse date failed!!key:"+key);
	}
	return null;
    }
    public Boolean getBoolean(String key){
	return Boolean.parseBoolean((String)this.getParameters().get(key));
    }
    public Float getFloat(String key){
	return Float.parseFloat((String)this.getParameters().get(key));
    }
    public Double getDouble(String key){
	return Double.parseDouble((String)this.getParameters().get(key));
    }
    public BigDecimal getBigDecimal(String key){
	return BigDecimal.valueOf(getDouble(key));
    }
}
